Electronic systems and circuits have made a significant contribution towards the advancement of modern society and are utilized in a number of applications to achieve advantageous results. Numerous electronic technologies such as digital computers, calculators, audio devices, video equipment, and telephone systems have facilitated increased productivity and reduced costs in analyzing and communicating data, ideas and trends in most areas of business, science, education and entertainment. Frequently, electronic devices providing these advantageous results depend upon accurate tracking of diverse statistical information related to a variety of metrics. The tracking of the statistical information often involves counting the occurrence of numerous different events or conditions. For example, electronic systems are often required to keep track of various operational events that may occur (such as power failures, processing errors, packets of information communicated, etc.). Traditionally, significant resources are required to count the various items of usual interest.
Numerous electronic systems include integrated circuits on single substrate chips. The functionality a chip is capable of providing usually depends on the resources included in a chip. Resources on a chip are usually at a premium since there is typically a limited number of components included in the logic area of a die. As more resources on a die are assigned to performing certain tasks fewer resources are available to provide greater functionality. For example, as more resources are consumed to support system management tasks such as tracking operational conditions or events there are fewer resources available for application tasks. Counters are often used in traditional systems to track operational conditions or events.
Electronic counter circuits designed to manipulate and track counts are typically limited to tracking single items, such as the occurrence of a particular event or existence of a certain condition. Each counter usually requires its own incrementor component or adder and a set of registers to store a resulting value. For example, an n bit counter usually consists of n flip flops that generally drive n output lines. Counters are usually sequential circuits that go through a prescribed sequence of states when an input pulse is applied. However, many applications require flexible incremental changes in a count and additional adder components are often required.
Systems typically require counts on a large number of different items. For example, network management operations often require media access controllers to keep a count on a number of different things. Media access blocks usually require each item counted to have individual count resources. A media access controller block often includes a media access controller, a register block and a network management counter block. The media access controller performs data movement operations. The register block contains registers used to configure the media access controller. The network management counter counts various network events such as collisions, data bytes, and errors. For example, networks often require a media access controller to track counts of a variety of things such as how many packets consist of a specified number of bytes (e.g., 64) and each tracked packet size requires its own counter circuit. So if a media access controller requires 30 or 40 different events or conditions to be tracked, each media access controller consumes resources associated 30 or 40 counter circuits.
The consumption of limited resources by a particular device is usually exacerbated in most instances since systems usually have multiple similar devices. For example, systems usually have numerous media access controllers per chip. While the circuitry for a given particular individual item counter may be simple, duplicating those circuits numerous times for each different item typically consumes valuable resources and chip space at an exponential rate.
Thus, the prior art requires significant dedicated resources to perform the various counting functions for numerous different components that are often included in traditional systems.